package org.hongqi.common.senpec.sys.menu;

import org.hongqi.common.senpec.base.mybatisplus.IBaseService;
import org.hongqi.common.senpec.base.sevlet.Result;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collection;

public interface MenuService extends IBaseService<Menu> {
    default Collection<Menu> myListByPid(Long parent) {
        return null;
    }

    default Collection<Menu> myListMenusExcludeButtonByPid(Long parent) {
        return null;
    }

    default Result<Collection<Menu>> myListNavy() {
        return null;
    }

    default Result<Collection<Menu>> myListMenuButtonsByParentIdAndRoleId(Long pid, Long rid) {
        return null;
    }

    default Result<Collection<Menu>> myListTreeWithoutButton() {
        return null;
    }

    default Result<Collection<Menu>> myListMenusByRoleId(Long roleId) {
        return null;
    }

    default Collection<Menu> myListMenusByParent(Long pid) {
        return null;
    }

    @Transactional(rollbackFor = Exception.class)
    default Result<?> myUpdateMenuIdsByRoleId(Long roleId, Long currentMenuId, Collection<Long> menuIds) {
        return null;
    }

    default Result<?> myDeleteMenuIdsByRoleId(Long roleId) {
        return null;
    }

    default Result<Collection<Menu>> myListMenusForNavy(Long userId) {
        return null;
    }

    default Collection<Menu> myListMenusByParentAndUserId(Long parent, Long userId) {
        return null;
    }

    default Result<Menu> myUpdateMenuButtonIdByRoleId(Long roleId, Long buttonId) {
        return null;
    }

    default Result<Collection<String>> myListMenuButtonIdsByRoleIdAndParent(Long roleId, Long parentId) {
        return null;
    }

    default Result<Menu> myUpdateMenuSequence(Long id, String direction) {
        return null;
    }

    default Integer createSequence(Long id) {
        return null;
    }

    default StringBuilder createFullPath(Long id) {
        return null;
    }

    default Result<Collection<String>> myListAuthoritiesByUserId(Long id) {
        return null;
    }

    default Result<Collection<String>> myListAuthoritiesByUsername(String username) {
        return null;
    }
}
